#!/bin/bash

# 构建、打包并启动 RuoYi-TDesign 应用的脚本 (CentOS 7.9 阿里云服务器版本)

echo "开始构建和打包后端应用..."

# 确保 Docker 服务正在运行
if ! systemctl is-active --quiet docker; then
    echo "正在启动 Docker 服务..."
    sudo systemctl start docker
fi

# 使用 Docker 中的 Maven 构建项目
docker run --rm \
  -v "$(pwd)":/app \
  -v ~/.m2:/root/.m2 \
  -w /app \
  maven:3.9.6-eclipse-temurin-21 \
  mvn clean package -DskipTests -Drevision=1.4.0

# 检查构建是否成功
if [ ! -f ./ruoyi-admin/target/ruoyi-admin.jar ]; then
    echo "错误: 构建失败，未找到 ruoyi-admin.jar 文件"
    exit 1
fi

echo "构建成功完成！"

# 创建日志目录
mkdir -p ./logs

# 检查并创建 Docker 网络（如果需要）
echo "检查 Docker 网络..."
if ! docker network ls | grep -q "ruoyi-network"; then
    echo "创建 ruoyi-network Docker 网络..."
    docker network create ruoyi-network
fi

# 停止并移除已存在的容器
echo "停止并移除已存在的应用容器..."
docker stop ruoyi-admin 2>/dev/null || true
docker rm ruoyi-admin 2>/dev/null || true

echo "正在启动应用容器..."

# 使用 Docker 运行应用
docker run -d \
  --name ruoyi-admin \
  -p 8080:8080 \
  -v "$(pwd)/ruoyi-admin/target/ruoyi-admin.jar:/app/ruoyi-admin.jar" \
  -v "$(pwd)/logs:/app/logs" \
  -e SPRING_PROFILES_ACTIVE=prod \
  -e TZ=Asia/Shanghai \
  openjdk:21-jdk \
  java -Xms512m -Xmx1024m \
    -Dserver.port=8080 \
    -Dspring.profiles.active=prod \
    -Duser.timezone=Asia/Shanghai \
    -jar /app/ruoyi-admin.jar

echo "应用已启动！"
echo "访问地址: http://localhost:8080"
echo "查看日志: docker logs -f ruoyi-admin"
